package com.regex.web.config;

import java.io.IOException;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import com.jagregory.shiro.freemarker.ShiroTags;

import freemarker.template.TemplateException;

@Configuration
public class FreeMarkerConfigExtend {
	
	@Value("${sysName}")
    private String sysName;
	
	@Value("${base}")
    private String base;
	
	@Value("${resRoot}")
    private String resRoot;
	
	@Value("${picUrlHost}")
	private String picUrlHost;
	
	@Value("${baseHost}")
	private String baseHost;
	
	
	@Bean
	public FreeMarkerConfigurer freeMarkerConfigurer() throws IOException, TemplateException {
	    FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
	    
	    freeMarkerConfigurer.afterPropertiesSet();
	    freeMarkerConfigurer.setTemplateLoaderPath("classpath:templates/");
	    // 启用多个resources生效 false
	    freeMarkerConfigurer.setPreferFileSystemAccess(false);
	    freemarker.template.Configuration configuration = freeMarkerConfigurer.createConfiguration();
	    // 加载html的资源路径 系统名称
	    configuration.setSharedVariable("sysName", sysName);
	    // 工程名称
	    configuration.setSharedVariable("base", base);
	    // 静态资源目录
	    configuration.setSharedVariable("resRoot", resRoot);
	    // 图片展示头地址，展示使用，保存时不建议带此，便于图片迁移方便，  图片目前使用ck代理，图片地址也在ck空间下，系统打jar包，系统发布，不影响图片文件
	    configuration.setSharedVariable("picUrlHost", picUrlHost);
	    configuration.setSharedVariable("baseHost", baseHost);
	    // 字典设置为全局变量不在需要每个页面增加字典，当字典过多时，可放至缓存(memcache、 redis等快速缓存中，更新后刷新缓存)
	    
	    configuration.setDefaultEncoding("UTF-8");
	    //这里可以添加其他共享变量 比如sso登录地址
	    configuration.setSharedVariable("shiro", new ShiroTags());
	    configuration.setNumberFormat("#");
	    freeMarkerConfigurer.setConfiguration(configuration);
	    return freeMarkerConfigurer;
	}
}
